package com.ushine.web.component.exception;

/**
 * @Author: yls
 * @Date: 2020/10/20 10:29
 * @Description: 自定义一个异常信息枚举类
 * @Version 1.0
 */
public enum BaseErrorEnum implements BaseErrorInfoInterface {
    /**
     * 服务端错误定义
     * 代码段：500~599
     */
    SYSTEM_INTERNAL_SERVER_ERROR(500, "服务器内部错误！"),
    SYSTEM_SERVER_DANGER(501, "危险操作，请及时联系管理员！"),
    SYSTEM_SERVER_BUSY(503, "服务器正忙，请稍后再试！"),

    /**
     * 基础异常信息
     * 代码段：1000~1999
     */
    /*
     * 请求相关
     */
    REQUEST_NOT_READABLE(1000, "400错误：Http消息不可读异常！"),
    REQUEST_TYPE_MISMATCH(1001, "400错误：类型不匹配异常！"),
    REQUEST_MISSING_SERVLET(1002, "400错误：请求参数异常！"),
    REQUEST_METHOD_NOT_SUPPORTED(1003, "405异常：Http请求方法不支持异常！"),
    REQUEST_MEDIA_TYPE_NOT_ACCEPTABLE(1004, "406异常：Http媒体类型不可接受异常"),
    REQUEST_STACK_OVER_FLOW(1005, "栈溢出！"),
    /*
     * 系统基础异常
     */
    SYSTEM_NULL_POINTER_ERROR(1006, "空指针异常！"),
    SYSTEM_CLASS_CAST_ERROR(1007, "类型转换异常！"),
    SYSTEM_ARRAY_INDEX_OUT_OF_BOUNDS(1008, "数组越界异常！"),
    SYSTEM_IO_ERR0R(1009, "IO异常！"),
    SYSTEM_NO_SUCH_METHOD_ERROR(1010, "未知方法异常！"),
    SYSTEM_ARITMETIC_ERROR(1011, "除数不能为0！"),
    SYSTEM_UPLOAD_MAX_SIZE_ERROR(1012, "文件上传超过最大限制！"),
    SYSTEM_ACCESS_DENIED_ERROR(1013, "没有权限！"),
    SYSTEM_DEFAULT_ERROR(1014, "其他错误！");


    /**
     * 返回状态
     */
    private Integer errorCode;

    /**
     * 返回信息
     */
    private String errorMsg;

    BaseErrorEnum(Integer errorCode, String errorMsg) {
        this.errorCode = errorCode;
        this.errorMsg = errorMsg;
    }

    @Override
    public Integer getErrorCode() {
        return errorCode;
    }

    @Override
    public String getErrorMsg() {
        return errorMsg;
    }
}
